using System;
using System.Collections.Generic;
using System.Globalization;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters;
using Newtonsoft.Json.Serialization;

namespace Newtonsoft.Json
{
	public class JsonSerializerSettings
	{
		internal const ReferenceLoopHandling referenceLoopHandling_0 = ReferenceLoopHandling.Error;

		internal const MissingMemberHandling missingMemberHandling_0 = MissingMemberHandling.Ignore;

		internal const NullValueHandling nullValueHandling_0 = NullValueHandling.Include;

		internal const DefaultValueHandling defaultValueHandling_0 = DefaultValueHandling.Include;

		internal const ObjectCreationHandling objectCreationHandling_0 = ObjectCreationHandling.Auto;

		internal const PreserveReferencesHandling preserveReferencesHandling_0 = PreserveReferencesHandling.None;

		internal const ConstructorHandling constructorHandling_0 = ConstructorHandling.Default;

		internal const TypeNameHandling typeNameHandling_0 = TypeNameHandling.None;

		internal const FormatterAssemblyStyle formatterAssemblyStyle_0 = FormatterAssemblyStyle.Simple;

		internal const Formatting formatting_0 = Formatting.None;

		internal const DateFormatHandling dateFormatHandling_0 = DateFormatHandling.IsoDateFormat;

		internal const DateTimeZoneHandling dateTimeZoneHandling_0 = DateTimeZoneHandling.RoundtripKind;

		internal const DateParseHandling dateParseHandling_0 = DateParseHandling.DateTime;

		internal const FloatParseHandling floatParseHandling_0 = FloatParseHandling.Double;

		internal const FloatFormatHandling floatFormatHandling_0 = FloatFormatHandling.String;

		internal const StringEscapeHandling stringEscapeHandling_0 = StringEscapeHandling.Default;

		internal const FormatterAssemblyStyle formatterAssemblyStyle_1 = FormatterAssemblyStyle.Simple;

		internal const bool bool_0 = false;

		internal const string string_0 = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK";

		internal static readonly StreamingContext streamingContext_0;

		internal static readonly CultureInfo cultureInfo_0;

		internal Formatting? nullable_0;

		internal DateFormatHandling? nullable_1;

		internal DateTimeZoneHandling? nullable_2;

		internal DateParseHandling? nullable_3;

		internal FloatFormatHandling? nullable_4;

		internal FloatParseHandling? nullable_5;

		internal StringEscapeHandling? nullable_6;

		internal CultureInfo cultureInfo_1;

		internal bool? nullable_7;

		internal int? nullable_8;

		internal bool bool_1;

		internal string string_1;

		internal bool bool_2;

		internal FormatterAssemblyStyle? nullable_9;

		internal DefaultValueHandling? nullable_10;

		internal PreserveReferencesHandling? nullable_11;

		internal NullValueHandling? nullable_12;

		internal ObjectCreationHandling? nullable_13;

		internal MissingMemberHandling? nullable_14;

		internal ReferenceLoopHandling? nullable_15;

		internal StreamingContext? nullable_16;

		internal ConstructorHandling? nullable_17;

		internal TypeNameHandling? nullable_18;

		[CompilerGenerated]
		private IList<JsonConverter> ilist_0;

		[CompilerGenerated]
		private IContractResolver icontractResolver_0;

		[CompilerGenerated]
		private IReferenceResolver ireferenceResolver_0;

		[CompilerGenerated]
		private ITraceWriter itraceWriter_0;

		[CompilerGenerated]
		private SerializationBinder serializationBinder_0;

		[CompilerGenerated]
		private EventHandler<ErrorEventArgs> eventHandler_0;

		public ReferenceLoopHandling ReferenceLoopHandling
		{
			get
			{
				return nullable_15 ?? ReferenceLoopHandling.Error;
			}
			set
			{
				nullable_15 = value;
			}
		}

		public MissingMemberHandling MissingMemberHandling
		{
			get
			{
				return nullable_14 ?? MissingMemberHandling.Ignore;
			}
			set
			{
				nullable_14 = value;
			}
		}

		public ObjectCreationHandling ObjectCreationHandling
		{
			get
			{
				return nullable_13 ?? ObjectCreationHandling.Auto;
			}
			set
			{
				nullable_13 = value;
			}
		}

		public NullValueHandling NullValueHandling
		{
			get
			{
				return nullable_12 ?? NullValueHandling.Include;
			}
			set
			{
				nullable_12 = value;
			}
		}

		public DefaultValueHandling DefaultValueHandling
		{
			get
			{
				return nullable_10 ?? DefaultValueHandling.Include;
			}
			set
			{
				nullable_10 = value;
			}
		}

		public IList<JsonConverter> Converters
		{
			[CompilerGenerated]
			get
			{
				return ilist_0;
			}
			[CompilerGenerated]
			set
			{
				ilist_0 = value;
			}
		}

		public PreserveReferencesHandling PreserveReferencesHandling
		{
			get
			{
				return nullable_11 ?? PreserveReferencesHandling.None;
			}
			set
			{
				nullable_11 = value;
			}
		}

		public TypeNameHandling TypeNameHandling
		{
			get
			{
				return nullable_18 ?? TypeNameHandling.None;
			}
			set
			{
				nullable_18 = value;
			}
		}

		public FormatterAssemblyStyle TypeNameAssemblyFormat
		{
			get
			{
				return nullable_9 ?? FormatterAssemblyStyle.Simple;
			}
			set
			{
				nullable_9 = value;
			}
		}

		public ConstructorHandling ConstructorHandling
		{
			get
			{
				return nullable_17 ?? ConstructorHandling.Default;
			}
			set
			{
				nullable_17 = value;
			}
		}

		public IContractResolver ContractResolver
		{
			[CompilerGenerated]
			get
			{
				return icontractResolver_0;
			}
			[CompilerGenerated]
			set
			{
				icontractResolver_0 = value;
			}
		}

		public IReferenceResolver ReferenceResolver
		{
			[CompilerGenerated]
			get
			{
				return ireferenceResolver_0;
			}
			[CompilerGenerated]
			set
			{
				ireferenceResolver_0 = value;
			}
		}

		public ITraceWriter TraceWriter
		{
			[CompilerGenerated]
			get
			{
				return itraceWriter_0;
			}
			[CompilerGenerated]
			set
			{
				itraceWriter_0 = value;
			}
		}

		public SerializationBinder Binder
		{
			[CompilerGenerated]
			get
			{
				return serializationBinder_0;
			}
			[CompilerGenerated]
			set
			{
				serializationBinder_0 = value;
			}
		}

		public EventHandler<ErrorEventArgs> Error
		{
			[CompilerGenerated]
			get
			{
				return eventHandler_0;
			}
			[CompilerGenerated]
			set
			{
				eventHandler_0 = value;
			}
		}

		public StreamingContext Context
		{
			get
			{
				return nullable_16 ?? streamingContext_0;
			}
			set
			{
				nullable_16 = value;
			}
		}

		public string DateFormatString
		{
			get
			{
				return string_1 ?? "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK";
			}
			set
			{
				string_1 = value;
				bool_2 = true;
			}
		}

		public int? MaxDepth
		{
			get
			{
				return nullable_8;
			}
			set
			{
				if (value <= 0)
				{
					throw new ArgumentException("Value must be positive.", "value");
				}
				nullable_8 = value;
				bool_1 = true;
			}
		}

		public Formatting Formatting
		{
			get
			{
				return nullable_0 ?? Formatting.None;
			}
			set
			{
				nullable_0 = value;
			}
		}

		public DateFormatHandling DateFormatHandling
		{
			get
			{
				return nullable_1 ?? DateFormatHandling.IsoDateFormat;
			}
			set
			{
				nullable_1 = value;
			}
		}

		public DateTimeZoneHandling DateTimeZoneHandling
		{
			get
			{
				return nullable_2 ?? DateTimeZoneHandling.RoundtripKind;
			}
			set
			{
				nullable_2 = value;
			}
		}

		public DateParseHandling DateParseHandling
		{
			get
			{
				return nullable_3 ?? DateParseHandling.DateTime;
			}
			set
			{
				nullable_3 = value;
			}
		}

		public FloatFormatHandling FloatFormatHandling
		{
			get
			{
				return nullable_4 ?? FloatFormatHandling.String;
			}
			set
			{
				nullable_4 = value;
			}
		}

		public FloatParseHandling FloatParseHandling
		{
			get
			{
				return nullable_5 ?? FloatParseHandling.Double;
			}
			set
			{
				nullable_5 = value;
			}
		}

		public StringEscapeHandling StringEscapeHandling
		{
			get
			{
				return nullable_6 ?? StringEscapeHandling.Default;
			}
			set
			{
				nullable_6 = value;
			}
		}

		public CultureInfo Culture
		{
			get
			{
				return cultureInfo_1 ?? cultureInfo_0;
			}
			set
			{
				cultureInfo_1 = value;
			}
		}

		public bool CheckAdditionalContent
		{
			get
			{
				return nullable_7 ?? false;
			}
			set
			{
				nullable_7 = value;
			}
		}

		static JsonSerializerSettings()
		{
			streamingContext_0 = default(StreamingContext);
			cultureInfo_0 = CultureInfo.InvariantCulture;
		}

		public JsonSerializerSettings()
		{
			Converters = new List<JsonConverter>();
		}
	}
}
